package se480.tracker.tracker;

import java.util.ArrayList;
import java.util.Map;

import se480.tracker.event.TrackerEvent;

/**
 * This is the interface for a Tracker implementation.
 * A Tracker must provide for:  saving partial and full
 * checkpoints and processing a request (either
 * query or update).
 * 
 * @author mmichalak
 *
 */
public interface Tracker {
	public void saveCheckpoint();
	public void savePartialChanges();	
	public String processRequest(TrackerEvent ev);
	
	// NOTE:  given more time, these would be encapsulated in an object to abstract the implementation
	public void setDataStore(Map<String, ArrayList<Location>> dataStore );
	public Map<String, ArrayList<Location>> getDataStore();
}
